Software licenses cover the usage of a software product, while current software licensing options are largely based on installations. Accordingly, a software product needs to be licensed if it is installed on a computer or similar device. Installations can be discovered by scanning storage devices (for example, hard disks) and identifying matching signatures. Such discovery techniques, however, incur significant overhead costs.
Moreover, installation of a software product does not equal usage of a software product. For example, a context within which installation without usage can occur might include a change of software deployment, or wherein a software product is uninstalled without wiping the corresponding storage area. Additionally, a context within which usage without installation can occur might include a transfer of an executable program of a software product through a network. Such a scenario would pose challenges because it may be infeasible to scan all network-accessible devices.
In a managed cloud computing environment, management-based discovery may be used, while in an unmanaged infrastructure as a service (IaaS) environment, customers can install and use software products without going through a centralized portal. In many such instances, software products are stored in virtual machine (VM) images, and such VM images might be remote from the compute nodes. As such, scanning such an environment would also likely incur significant overhead costs and can be inaccurate due to remotely attached storage.
Accordingly, a need exists to efficiently discover software products that should properly be licensed on hardware assets, as well as to optimize software deployment on hardware assets to reduce software licensing costs.